Business software applications, for example, Enterprise Resource Planning (ERP), Customer Relationship Management (CRM), and Knowledge Management (KM), typically stores information in data stores. The data stores include local databases, and distributed storage such as Lightweight Directory Access Protocol (LDAP), Web-based Distributed Authoring and Versioning (WebDAV), file sharing, etc. One difficulty faced by enterprise business software users is searching business data in the data stores.
Typically, users input search terms. These search terms are defined as words in some order or relation. This means that selected words and their order should play a significant role in determining the search result. However, the existing search machines have difficulties in context-related search because the search terms are interpreted by a search machine as a string/term and are very often taken without context. For example, an existing search machine looking for a “Lotus” term would generate hits for flower, car and brand of car oil, although in reality these hits have nothing in common and are defined in completely different context (e.g., domain of knowledge).
One of the solutions used to model the knowledge is a semantic network. The semantic network allows grouping the knowledge in domains and organizes terminology in concepts that group the semantic related terms (e.g., synonyms). In the semantic network, each term is described by metadata—so-called term types. The existing search engines, such as those Internet based search engines or search engines provided by the business software vendors, however can only search the user input search terms (words, sentences) without contextual analysis or with only partial contextual analysis. Thus, the existing solution does not support the integration of business-related content and business rules in the search and/or distribution of business knowledge. Further, the existing solution does not reuse any semantic knowledge (e.g., terminology defined in semantic net), such as user/user-group knowledge or importance of the terminology.
Accordingly, there is a need in the art to provide a self-learning semantic search engine that reuses the semantic knowledge, includes user/user-group knowledge to provide better user/user-group-oriented search results and influences the terminology ranking (terminology importance) into indexing process (e.g., including semantic-related information).